﻿using System;

namespace Borg
{
    [AttributeUsage(AttributeTargets.Class, AllowMultiple=true, Inherited=false)]
    public sealed class SlotAttribute : Attribute
    {
        public string Name { get; internal set; }

        public bool AutoOpen { get; set; }
        public bool AutoPlug { get; set; }
        public string AutoTag { get; set; }

        public bool Shared { get; set; }

        public string OnOpening { get; set; }
        public string OnOpened { get; set; }

        public string OnPlugging { get; set; }
        public string OnPlugged { get; set; }

        public string OnTagging { get; set; }
        public string OnTagged { get; set; }

        public string OnClosing { get; set; }
        public string OnClosed { get; set; }

        public string OnUnplugging { get; set; }
        public string OnUnplugged { get; set; }

        public string OnUntagging { get; set; }
        public string OnUntagged { get; set; }

        public SlotAttribute(string name)
        {
            Name = name;
            AutoOpen = true;
            AutoPlug = true;
            AutoTag = string.Empty;
            Shared = false;
        }
    }
}
